Micron Document




Programming tool
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
A programming tool or software development tool is a computer program that is used to develop another computer program, usually by helping the developer manage computer files. For example, a programmer may use a tool called a source code editor to edit source code files, and then a compiler to convert the source code into machine code files. They may also use build tools that automatically package executable program and data files into shareable packages or install kits.

A set of tools that are run one after another, with each tool feeding its output to the next one, is called a toolchain. An integrated development environment (IDE) integrates the function of several tools into a single program. Usually, an IDE provides a source code editor as well as other built-in or plug-in tools that help with compiling, debugging, and testing.

Whether a program is considered a development tool can be subjective. Some programs, such as the GNU compiler collection, are used exclusively for software development while others, such as Notepad, are not meant specifically for development but are nevertheless often used for programming.

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Categories

Notable categories of development tools:

Assembler – Converts assembly language into machine code
Bug tracking system – Software application that records software bugs
Build automation – Building software via an unattended fashion
Code review software – Activity where one or more people check a program's code
Compiler – Computer program which translates code from one programming language to another
Compiler-compiler – Program that generates parsers or compilers, a.k.a. parser generator
Debugger – Computer program used to test and debug other programs
Decompiler – Program translating executable to source code
Disassembler – Computer program to translate machine language into assembly language
Documentation generator – Automation technology for creating software documentation
Graphical user interface builder – Software development tool
Linker – Program that combines intermediate build files into an executable file
Memory debugger – Software memory problem finder
Minifier – Removal of unnecessary characters in code without changing its functionality
Pretty-printer – Formatting to make code or markup easier to readPages displaying short descriptions of redirect targets
Performance profiler – Measuring the time or resources used by a section of a computer program
Static code analyzer – Analysis of computer programs without executing themPages displaying short descriptions of redirect targets
Source code editor – Text editor specializing in software codePages displaying short descriptions of redirect targets
Source code generation – Type of computer programmingPages displaying short descriptions of redirect targets
Version control system – Stores and tracks versions of files

See also

Call graph – Structure in computing
Comparison of integrated development environments – Notable software packages that are nominal IDE
Computer aided software engineering – Domain of software toolsPages displaying short descriptions of redirect targets
Git – Distributed version control software system
GitHub – Software development collaboration platform
Lint – Tool to flag poor computer code
List of software engineering topics – Overview of and topical guide to software engineeringPages displaying short descriptions of redirect targets
Manual memory management – Computer memory management methodology
Memory leak – When a computer program fails to release unnecessary memory
Reverse-engineering – Process of extracting design information from anything artificialPages displaying short descriptions of redirect targets
Revision Control System – Version-control system
Software development kit – Set of software development tools
Software engineering – Engineering approach to software development
SourceForge – Software discovery and hosting platform for B2B and open source software
SWIG – Open-source programming tool
Toolkits for User Innovation – Design methodPages displaying short descriptions of redirect targets
Valgrind – Programming tool for profiling, memory debugging and memory leak detection

References

• Software Development Tools for Petascale Computing Workshop 2007
• citerefkernighanplauger1976Kernighan, Brian W.; Plauger, P. J. (1976), Software Tools, Addison-Wesley, pp. 352, ISBN 0-201-03669-X

External links

Media related to Programming tools at Wikimedia Commons